import React, { Component } from 'react'

// 数据可以放到外面，但是不是响应式的，数据变了，视图不会更新
/* const arr = [
  { id: 1, name: 'Vue' },
  { id: 2, name: 'React' },
  { id: 3, name: 'Angular' },
] */

export default class App extends Component {
  /* constructor() {
    super()
    this.state = {
      age: 18,
    }
  } */
  // state 等于一个对象，这种写法和上面等价
  state = {
    age: 18,
    // state 里面的东西称为状态，特点：数据变化会自动更新视图
    arr: [
      { id: 1, name: 'Vue' },
      { id: 2, name: 'React' },
      { id: 3, name: 'Angular' },
    ],
  }
  render() {
    // 解构赋值
    const { age, arr } = this.state
    return (
      <div>
        <p>App: {age}</p>
        <ul>
          {arr.map((item) => (
            <li key={item.id}>{item.name}</li>
          ))}
        </ul>
      </div>
    )
  }
}

// 两种定义状态的差异：constructor 中定义，new 的时候可以传参，传递的参数可以当做状态
// 而 state = {} 不太方便传参
